package cn.suxiaoxiang.suwebverify.api;

import cn.suxiaoxiang.suwebverify.SuWebVerify;
import com.google.gson.Gson;
import com.google.gson.JsonObject;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

/**
 * 背景图片API
 * 用于获取可用的背景图片列表
 */
public class BackgroundImages extends HttpServlet {
    private final SuWebVerify plugin;

    public BackgroundImages(SuWebVerify plugin) {
        this.plugin = plugin;
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 设置响应类型为JSON
        response.setContentType("application/json");
        response.setCharacterEncoding("UTF-8");

        // 创建响应对象
        JsonObject jsonResponse = new JsonObject();
        List<String> imageList = new ArrayList<>();

        // 获取背景图片目录（插件目录下的web/images）
        File imagesDir = new File(plugin.getDataFolder(), "web/images");
        if (!imagesDir.exists()) {
            imagesDir.mkdirs();
            plugin.getLogger().info("创建背景图片目录: " + imagesDir.getAbsolutePath());
        }

        // 获取所有图片文件
        File[] files = imagesDir.listFiles((dir, name) -> {
            String lowercaseName = name.toLowerCase();
            return lowercaseName.endsWith(".jpg") || 
                   lowercaseName.endsWith(".jpeg") || 
                   lowercaseName.endsWith(".png") || 
                   lowercaseName.endsWith(".gif");
        });

        // 添加图片到列表
        if (files != null) {
            for (File file : files) {
                imageList.add(file.getName());
            }
        }

        // 如果没有找到任何图片，添加默认图片
        if (imageList.isEmpty()) {
            imageList.add("img.png");
        }

        // 设置响应数据
        jsonResponse.addProperty("success", true);
        jsonResponse.add("images", new Gson().toJsonTree(imageList));

        // 发送响应
        response.getWriter().write(jsonResponse.toString());
    }
} 